In the field of data network management, data transport networks are made up of a collection of managed data transport equipment. Data services are provisioned over the managed data transport equipment.
In a competitive market place, due to a recent explosive technological development, the network management and service provisioning task is complicated by many factors including: multiple data network equipment vendors having multiple approaches in implementing the data network equipment; a multitude of data transport technologies, with each vendor specializing in a sub-group of the multitude of data transport technologies; a multitude of network management and service provisioning protocols, with each vendor implementing only a sub-group of the multitude of network management and service provisioning protocols; a multitude of auxiliary network management and service provisioning equipment employing yet another multitude of network management and service provisioning technologies; etc.
Data transport equipment includes, but is not limited to: data switching equipment, routers, bridges, access nodes providing a multiplexing function, Remote Access Servers (RAS), distribution nodes providing a demultiplexing function, Customer Premise Equipment (CPE), etc. with next generation data transport equipment in development.
With regards to data network equipment, for example data switching nodes schematically shown in FIG. 1, a vendor may chose to implement an integral device 110 having a data switching processor and a group of ports 112, while another vendor may chose a customizable implementation of a data switching node 120 including: a switching fabric, an equipment rack divided into shelves, each shelf 122 having slot connectors for connection with interface cards, each interface card 124 having at least one port 112. Although conceptually the two the data switching nodes 110 and 120 provide the same data switching function, each implementation is adapted for a different environment: the former data switching node 110 is more adapted to enterprise solutions as a private data network node, perhaps further adapted to enable access to public data services; while the latter data switching node 120 is better adapted for high data throughput in the core of public data transport networks. Typically the former (110) implements a small number of data transport protocols while for the latter (120), data transport protocols are implemented on interface cards 124 and/or ports 112—providing for a flexible deployment thereof. All data network equipment is subject to design choices which are bound to be different from vendor to vendor.
Data transport technologies include: electrical transmission of data via copper pairs, coaxial cable, etc: optical transmission of data via optical cables; free space optical interconnects, etc.; wireless transmission of data via radio modems, microwave links, wireless Local Area Networking (LAN), etc.; with next generation data transport technologies under development.
Data transport protocols used to convey data between data transport equipment includes: Internet Protocol (IP), Ethernet technologies, Token-Ring technologies, Fiber Distributed Data Interface (FDDI), Asynchronous Transmission Mode (ATM), Synchronous Optical NETwork (SONET) transmission protocol, Frame Relay (FR), X-25, Time Division Multiplexing (TDM) transmission protocol, Packet-Over-SONET (POS), Multi-Protocol Label Switching (MPLS), etc. with next generation data transport protocols in development.
The physical data network equipment alluded to above is part of larger body of managed data network entities enabling the provision of data services. The data network entities also include, but are not limited to: virtual routers, logical ports, logical interfaces, end-to-end data links, paths, virtual circuits, virtual paths, etc.
Network management and service provisioning enabling technologies include, but are not limited to protocols: Simple Network Management Protocol (SNMP), Common Management Information Protocol (CMIP) etc.; as well as devices: special function servers, centralized databases, distributed databases, relational databases, directories, network management systems, etc. with next generation devices and technologies under development.
Network management and service provisioning solutions include Network Management Systems (NMS) 130 enabled via special purpose software applications coded to configure and control the above mentioned data network entities. Such software applications include, but are not limited to: inventory reporting, configuration management, statistics gathering, performance reporting, fault management, network surveillance, service provisioning, billing & accounting, security enforcement, etc.
It is a daunting task to provide network management and service provisioning solutions taking into account the permutations and combinations of the elements presented above. Prior art approaches to providing network management and service provisioning solutions include the coding of hundreds of software applications with knowledge of hundreds of data networking entities using tens of data transmission and network management protocols. Some prior art solutions attempt to code all-encompassing large monolithic network management and service provisioning software applications.
Coding, deploying, maintaining, and extending such software applications for network management and service provisioning has been and continues to be an enormous undertaking as well as an extremely complex procedure. Such software applications require a large number of man-hours to create, frequently are delivered with numerous problems, and are difficult to modify and/or support. The difficulty in creating and supporting large applications is primarily due to the inability of existing software development paradigms to provide a simplification of the software development process. In accordance with current coding paradigms, the complexity of the software applications has been shown to increase as an exponential function of the number of different operations that are expected to be performed. Large programming efforts suffer in terms of reasonable performance, reliability, cost of development, and reasonable development cycles.
Object Oriented Programming (OOP) attempts to improve productivity whenever a problem can be simplified by decomposing it into a set of black-box objects. Object oriented programming depends heavily upon the benefits of data hiding, inheritance, and polymorphism to simplify software design. If a network management and service provisioning solution cannot be subdivided into objects, object oriented programming does not offer significant productivity improvements. Moreover, heavy reliance on object oriented programming to achieve compact code intending to reduce the size of software applications and perhaps development time, suffers from deeply nested function calls which creates a processing overhead leading to inefficient code. Deep nesting of function calls obscures the implementation paradigms used; thereby negatively impacting code debugging, code maintenance, and further development thereof.
Of special interest to the description herein is human-machine interface programming for information display to analysts interacting with NMS systems 130. Every data network entity has operational parameters associated therewith. Associations between data network entities are also made to enable: service provisioning (signaling, data transport, billing, etc.), providing redundancy (equipment, transport, bandwidth, etc.) as well as providing network management related data transport (network status updates, alarms, etc.) The amount of configuration and/or surveillance information associated with even the simplest of managed data transport networks tends to be very large. The information is typically divided up and presented to the analyst selectively in accordance with a context of network management and service provisioning. The selected information is presented to the analyst for visual inspection typically using view panels.
Object oriented programming techniques are used to implement very basic displayable elements known as widgets. Widgets include: icons, pull-down menus, buttons, selection boxes, progress indicators, on-off checkmarks, scroll bars, window frames, window manipulators, toggle buttons, sliders, tabs, and many other displayable elements for displaying information and for inviting, accepting, and responding to actions performed by an analyst.
Prior art efforts including: Preside™ by Nortel Networks Corp., IP Manager™ by Cisco Systems Inc., OneVision Management System™ by Lucent Technologies Inc., NetProvision Activator by Syndesis Limited, Resolve 2.1 by Orchestream Holdings Plc., and others, capture the: properties, associations, relationships, functionality and management of data network entities, as well as methods of interaction therewith in providing network management and service provisioning solutions into large monolithic software applications.
These efforts are all laudable, but at the same time, these solutions include hard-coded human-machine interfaces making it difficult to develop, extend and/or modify as necessary to add support for newly developed data network entities, new data transport protocols, new network management and service provisioning technologies, new contexts of network management and service provisioning etc. Further these solutions include hard-coded rules pertaining to valid actions that can be performed on data network entities as well as hard-coded rules pertaining to valid value ranges for each operational parameter thereof. The rules form part of what is know in the art as domain logic.
The productivity of the development and maintenance of such current complex software applications for network management and service provisioning suffers. In particular, view panels providing selective display of information have to be coded anew, the whole software application needs to be re-compiled and re-deployed to provide support for additional and/or updated data network entities. There is always a risk of causing errors in existing code when dealing with such large software applications thereby requiring extensive regression testing to verify the integrity of the existing code.
Other prior art network management and service provisioning solutions include the use of element management software. Element management software typically provides command line access to configuration of operational parameters. Element management software is typically provided by equipment vendors to enable configuration of specific data network equipment sold. Such attempts suffer from the use of a large number of element management software applications, an inconsistent human-machine interface and a lack of a data network wide view of the managed data network entities in providing network management and service provisioning solutions.
There therefore is a need to devise improved methods of software application code development and maintenance taking into account the above mentioned complexities.